<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
    <link href="../../style.css" rel="stylesheet" type="text/css">
</head>
<body>
	<div class="content">
        <!-- preview -->
		<div class="logo"><h2 class="logoName"></h2></div>
            <div style="text-align: center;margin-top: 20px;">
                <img class="previewImage" src="../../image/prepublish.png">
        </div>
        
        <!-- description -->
		<div class="header"><h4>描述</h4></div>
        <HR>
        <div class="subContent">
            <div uuid="description" class="boxCustomContent"></div>
        </div>
        
        <!-- config -->
		<div class="header"><h4>检查项配置</h4></div>
        <HR>
        <div class="subContent">
            
            <div uuid="projectConfigInfo" class="boxCustomContent"></div>
            <div uuid="projectConfig" class="boxColorContent"></div>
            

        </div>
        <div class="header"><h4>检查项模板</h4></div>
        <div class="subContent">
            <div uuid="pipelineConfig" class="boxColorContent"></div>
        </div>
        <!-- example -->
		<div class="header"><h4>Examples</h4></div>
        <HR>
        <div class="subContent">
            <div uuid="packageSample" class="boxColorContent"></div>
        </div>
	</div>

<!-- 下面是数据输入区，注意空格，这里什么格式，显示什么格式.注意："<" 和 ">" 用 &lt; 和 &gt; 代替。-->
<!-- **************************************************************** -->
<!-- 1.语法内容输入 -->
<pre uuid="description" style="display:none;">
质检（QC）框架：适用任何支持Python的软件, 数据完成提交前的质量检查 。

</pre>



<pre class="code" uuid="projectConfigInfo" style="display:none">
<code>
hooks_path: {script path}                   # 指定检查功能代码的存储路径
checker_actions:
    -
        name: 检查名                        # 质检框架里面显示的检查项名字
        skip: 是否可跳过（bool）            # 布尔值，为真则可以在检查项列表里面手动删除该检查项
        auto: 是否可自动修复（bool）        # 布尔值，为真则说明插件可以自动修复错误（前提是在功能代码里面提供了修复的功能）
        description: 描述信息               # 在检查框架里面点击检查项的时候可打印该信息，便于描述说明该检查项的功能
        handler: 检查功能代码文件           # 检查项执行脚本名（不带文件类型后缀）
    ...
</code>
</pre>

<pre uuid="projectConfig" style="display:none">
<code>
# modeling.yml

hooks_path: mayahooks
checker_actions:
   -
       name: reference check | 引用检查
       skip: false
       auto: false
       description: 检查场景中是否有引用
       handler: scene_reference_check
   -
       name: namespace | namespace检查
       skip: false
       auto: false
       description: 检查场景中是否有多余的名称空间
       handler: scene_namespace_check
   -
       name: camera | 相机检查
       skip: false
       auto: true
       description: 默认相机检查
       handler: scene_camera_clear
...
</code>
</pre>
<pre class="code" uuid="pipelineConfig" style="display:none">
<code>
class Checker(object):
    def scan(self, select=0, **keyargs):
        """
        扫描场景并返回结果数据，数据为空则检查通过
        data数据结果为字典，且字典的键值对的键为节点名字，值为列表，即{nodeName1:[...], ...}
        Returns:
        1. dict     # 检查有问题
        {
            error: boolean,        # True: Error;  False: Warning
            data: dict/None        # the scan result data: {nodeName1:[...], ...}
            info: str/None         # display info 
        }
        2. False    # 检查通过
        """
        pass
        
    def solve(self):
        """
        根据扫描数据自动修复，如果配置文件auto属性为True则此方法要实现
        """
        pass
        
    def select(self, obj):
        """
        选择：返回UI错误列表中的选择项名字
        多选返回列表（名字列表）
        请根据实际检查项实现次方法
        """ 
        pass

</code>
</pre>
<pre class="code" uuid="packageSample" style="display:none;">
<code>
# 如果config参数是一个配置文件路径，则使用指定的配置文件
# 如果config参数不是一个文件路径，而是一个文件名，则：
#     1. 首先检查是否有指定环境变量 PREPUBLISH_CONFIG_PATH ，如果有指定，则在指定的路径下查找。
#     2. 如果没有指定环境变量则在检查框架包的 ./config 路径下查找

import prepublish.core as ppc;

ppcWin = ppc.MainWindow(config='modeling.yml')

ppcWin.show()
</code>
</pre>

<!-- **************************************************************** -->
</body>
</html>

<!-- 加载插件 -->
<script type="text/javascript" src="../../../../scripts/require.js"></script>
<!-- 加载语言格式数据 -->
<script src="../../../../scripts/config/python.js"></script>
<script type="text/javascript">
    
    // 配置模块路径
    require.config({
        paths : {
            "apidocbuild" : "../../apidocbuild",
            "codestyle" : "../../../../scripts/codestyle",
        }
    })
    // 初始化界面
    require(["apidocbuild"])
    // 调用模块功能，根据数据实现语法高亮
    require(["codestyle"], function(codestyle){
                var all_code = document.getElementsByClassName("code");
                if(all_code){
                    for(var code of all_code){
                        codestyle.main(code, keywordsData, strFormatData);
                    }
                }
                }
            );

</script>


